package com.meituan.sdk.model.ddzhkh.generalreserve.generalreserveReserveMerchantcreateorder;

import com.meituan.sdk.annotations.ApiMeta;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 商家创单
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzhkh/generalreserve/reserve/merchantcreateorder",
    businessId = 59,
    apiVersion = "10003",
    apiName = "generalreserve_reserve_merchantcreateorder",
    needAuth = true
)
public class GeneralreserveReserveMerchantcreateorderRequest implements MeituanRequest<GeneralreserveReserveMerchantcreateorderResponse> {
    /**
    * <p data-diff-id="ct-diff-id-03f239a4-e476-48a1-85d9-3a9bbd7a4759"><span style="color: rgb(31, 45, 61)">预约单ID</span></p>
    */
    @SerializedName("leadsId")
    private Long leadsId;
    /**
    * <p data-diff-id="ct-diff-id-74cae2f5-0838-4f1a-8a32-78b49bfc294c"><span style="color: rgb(31, 45, 61)">手机号</span></p>
    */
    @NotBlank(message = "phone不能为空")
    @SerializedName("phone")
    private String phone;
    /**
    * <p data-diff-id="ct-diff-id-51b30654-cd3f-4e55-81f4-e883a99b8059"><span style="color: rgb(31, 45, 61)">门店ID。</span><span style="color: rgba(0, 0, 0, 0.87)">该字段是混淆字段，实际值类型为混淆后的字符串类型。</span></p>
    */
    @NotBlank(message = "opPoiId不能为空")
    @SerializedName("opPoiId")
    private String opPoiId;
    /**
    * <p data-diff-id="ct-diff-id-cf0887d1-26df-4a77-9b67-48ae36c4fbdf"><span style="color: rgb(31, 45, 61)">联系方式</span></p>
    */
    @SerializedName("otherContact")
    private String otherContact;
    /**
    * <p data-diff-id="ct-diff-id-2e4e6f1a-4c4d-424a-8269-379710cc19c2"><span style="color: rgb(31, 45, 61)">联系方式类型（0：无联系(未授权联系方式) 1：虚拟号 &nbsp;2：真实手机号）</span></p>
    */
    @SerializedName("otherContactType")
    private Integer otherContactType;
    /**
    * <p data-diff-id="ct-diff-id-c4308270-abd5-4f8d-b2b2-91a3bb6ff623"><span style="color: rgb(31, 45, 61)">业务来源</span></p>
    */
    @SerializedName("bizSourceId")
    private Integer bizSourceId;
    /**
    * <p data-diff-id="ct-diff-id-ebfcdb36-7add-44dd-8975-a205716b2e10"><span style="color: rgb(31, 45, 61)">预约开始时间</span></p>
    */
    @NotNull(message = "bookingStartTime不能为空")
    @SerializedName("bookingStartTime")
    private Long bookingStartTime;
    /**
    * <p data-diff-id="ct-diff-id-9fcedb2d-cb25-4c40-af75-675db2791516"><span style="color: rgb(31, 45, 61)">预约结束时间</span></p>
    */
    @SerializedName("bookingEndTime")
    private Long bookingEndTime;
    /**
    * <p data-diff-id="ct-diff-id-dd897303-e9d9-48ff-9178-aadd3bb56b50"><span style="color: rgb(31, 45, 61)">属性信息</span></p>
    */
    @SerializedName("leadsAttributeList")
    private String leadsAttributeList;
    /**
    * <p data-diff-id="ct-diff-id-5dd92265-a233-4de4-acba-2c93f68ccc3e"><span style="color: rgb(31, 45, 61)">订单属性列表</span></p>
    */
    @SerializedName("leadsReferList")
    private List<ThirdReferDTO> leadsReferList;
    /**
    * <p data-diff-id="ct-diff-id-f18de81d-1189-4a92-aa14-dba6f6050284"><span style="color: rgb(31, 45, 61)">商户备注</span></p>
    */
    @SerializedName("merchantRemark")
    private String merchantRemark;
    /**
    * <p data-diff-id="ct-diff-id-9d16598a-1982-4a3c-8012-a501aa13fefa"><span style="color: rgb(31, 45, 61)">扩展字段</span></p>
    */
    @SerializedName("extraMap")
    private String extraMap;
    /**
    * <p data-diff-id="ct-diff-id-a8990fda-9c03-40ab-b943-0ea89574ca6a"><span style="color: rgb(31, 45, 61)">预约数量</span></p>
    */
    @NotNull(message = "count不能为空")
    @SerializedName("count")
    private Integer count;

    public Long getLeadsId() {
        return leadsId;
    }
    public void setLeadsId(Long leadsId) {
        this.leadsId = leadsId;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getOpPoiId() {
        return opPoiId;
    }
    public void setOpPoiId(String opPoiId) {
        this.opPoiId = opPoiId;
    }
    public String getOtherContact() {
        return otherContact;
    }
    public void setOtherContact(String otherContact) {
        this.otherContact = otherContact;
    }
    public Integer getOtherContactType() {
        return otherContactType;
    }
    public void setOtherContactType(Integer otherContactType) {
        this.otherContactType = otherContactType;
    }
    public Integer getBizSourceId() {
        return bizSourceId;
    }
    public void setBizSourceId(Integer bizSourceId) {
        this.bizSourceId = bizSourceId;
    }
    public Long getBookingStartTime() {
        return bookingStartTime;
    }
    public void setBookingStartTime(Long bookingStartTime) {
        this.bookingStartTime = bookingStartTime;
    }
    public Long getBookingEndTime() {
        return bookingEndTime;
    }
    public void setBookingEndTime(Long bookingEndTime) {
        this.bookingEndTime = bookingEndTime;
    }
    public String getLeadsAttributeList() {
        return leadsAttributeList;
    }
    public void setLeadsAttributeList(String leadsAttributeList) {
        this.leadsAttributeList = leadsAttributeList;
    }
    public List<ThirdReferDTO> getLeadsReferList() {
        return leadsReferList;
    }
    public void setLeadsReferList(List<ThirdReferDTO> leadsReferList) {
        this.leadsReferList = leadsReferList;
    }
    public String getMerchantRemark() {
        return merchantRemark;
    }
    public void setMerchantRemark(String merchantRemark) {
        this.merchantRemark = merchantRemark;
    }
    public String getExtraMap() {
        return extraMap;
    }
    public void setExtraMap(String extraMap) {
        this.extraMap = extraMap;
    }
    public Integer getCount() {
        return count;
    }
    public void setCount(Integer count) {
        this.count = count;
    }


    @Override
    public MeituanResponse<GeneralreserveReserveMerchantcreateorderResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<GeneralreserveReserveMerchantcreateorderResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "GeneralreserveReserveMerchantcreateorderRequest{" + "leadsId=" + leadsId + "," + "phone=" + phone + "," + "opPoiId=" + opPoiId + "," + "otherContact=" + otherContact + "," + "otherContactType=" + otherContactType + "," + "bizSourceId=" + bizSourceId + "," + "bookingStartTime=" + bookingStartTime + "," + "bookingEndTime=" + bookingEndTime + "," + "leadsAttributeList=" + leadsAttributeList + "," + "leadsReferList=" + leadsReferList + "," + "merchantRemark=" + merchantRemark + "," + "extraMap=" + extraMap + "," + "count=" + count + "}";
    }
}
